#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char const *argv[])
{
 
    if(argc != 2)
    {
        printf("Pls input: ./a.out <dst file name)>\n");
        return -1;
    }
    
    printf("The file <%s> will be trunced to zero, will continue? Y/N: ", argv[1]);
 
    char cGet=0;
    while(1)
    {
        do
        {
            cGet = (char)getchar();
        }while( cGet == '\n');

        if ( cGet == 'N')
        {
            printf("program terminated by user\n");
            return 0;
        }
        else if ( cGet == 'Y' )
        {
            break;
        }
        else
        {
            printf("Wrong input. Pls input 'Y' or 'N': ");
        }
    }

    int fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0664);
    if ( -1 == fd )
    {
        perror("fail open");
        return -1;
    }

  
    printf("Success to open file <%s> with file id <%d>\n",
            argv[1], fd);

    close(fd);  

    return 0;
}



/********************************************
程序功能
    用户调用程序时, 输入 文件名字符串 给程序作为参数
    以 "写入, 创建, 清除文件内容"的形式打开所输入的文件名
    在用户操作之前, 需要提醒用户是否继续操作.

涉及函数
    open
    close

知识要点
    shell传参给main函数
    用户确认警告信息
    判断每一个会设置 errno 的函数返回值
    umask 
********************************************/
